"""
PydanticOutputParser 是 LangChain 中一个重要的输出解析器，用于将模型的输出解析为 Pydantic 模型对象。以下是详细说明：
主要功能
结构化输出解析：将语言模型的文本输出解析成结构化的 Pydantic 模型实例
数据验证：利用 Pydantic 的验证机制确保输出数据符合预定义的结构和类型
格式指导：可以生成格式说明，帮助语言模型理解期望的输出格式
"""
from typing import List

from langchain_core.output_parsers import PydanticOutputParser
from pydantic import BaseModel, Field

class Person(BaseModel):
    name: str = Field(description="人物姓名")
    age: int = Field(description="人物年龄")
    hobbies: List[str] = Field(description="兴趣爱好列表")

parser = PydanticOutputParser(pydantic_object=Person)
out = parser.parse('{"name": "张三", "age": 30, "hobbies": ["读书", "游泳"]}')
print(out)
